1. Field of the Invention
The present invention generally relates to calendaring and scheduling applications. More specifically, the present invention relates to facilitating the calendaring and scheduling of hierarchical events.
2. Description of the Related Art
Events may be hierarchical in nature. For example, a business trip may constitute an event. On this business trip, an individual may visit several customers. Each customer visit may also be considered an event. One or more of the customer visits may include multiple meetings that may constitute even more events. In the example shown in FIG. 1A, the business trip event (110) includes customer visit events (120); the customer visit events (120) include individual meeting events (130). The example illustrated in FIG. 1A exhibits a hierarchy of events that is three-levels deep. While FIG. 1A is for a hierarchy three-levels deep, other hierarchies exist with greater or fewer levels.
Regardless of the particular depth and detail of any given hierarchy, each event in a particular hierarchy includes a parent-child relationship. For example, in the business trip of FIG. 1A, a customer visit (120a) is a child of the business trip event (110). The same customer visit (120a), however, is also the parent of a meeting with a particular person affiliated with that customer (130a and 130b).
Hierarchical relationships are not effectively managed by existing calendaring or organizer systems. In Microsoft Outlook (as shown with respect to the business trip of FIG. 1A), an event that has a hierarchical relationship to other events is handled by overlapping those individual events on the same calendar. This ‘overlap’ creates the false appearance of conflicting events. As illustrated in FIG. 1B, such overlap may confuse prior art calendaring systems into believing that a conflict exists.
For example, if a user has a business trip, the user would reserve their time as busy for that trip. This reservation serves as an indication that the user is not available for other events during the trip's scheduled time. While the user is on that trip, however, the user may be free for events associated with that trip even though their calendar shows them as busy. As such, the user must proactively recognize that the overlapping of events does not constitute a true scheduling conflict. In a complex hierarchy of events, keeping track of true or false conflicts may be time consuming, confusing, and subject to error. Other calendar systems such as Apple iCal, Google, Yahoo!, Zimbra, Trumba, and Meeting Maker have similar limitations as Microsoft Outlook with respect to scheduling hierarchical events.
Alternatively, separate calendars may be created for specific parent-type events (e.g., a vacation) to create ‘containers’ for events. For example, one calendar may represent a vacation and have several child events scheduled and ‘contained’ therein. A business trip may represent another calendar with individual meeting events scheduled and contained therein. This ‘container’ method is likewise difficult to manage. A calendar created as a container for one set of events (e.g., a personal calendar) does not provide a way to reserve time on other calendars (e.g., a business calendar). This separate calendar methodology may leave the impression that the user is available for other events such as business meetings when, in fact, the user is out of the office on vacation. The user, in this methodology, is thereby forced to create an event corresponding to this vacation calendar on their other calendars it they want to reserve time for the vacation.
In prior art scheduling applications, the use of time reservations for events helps to determine the availability of an individual for other events. In systems such as Microsoft Outlook, three types of time reservations may be supported for events: Busy, Tentative, and Free. “Busy” indicates that the individual should be shown as not available for other events during the event's scheduled time. “Tentative” indicates that the individual should be shown as “tentatively available” for other events during the event's scheduled time. “Free” indicates that the individual should be shown as available during the event's scheduled time.
Since there may be multiple simultaneous events, the availability of an individual at a given time is determined by the time reservations of all the events scheduled at that time. If there are any events scheduled at that time with a time reservation of busy, then the individual is assumed to not be available for a new event at that time. If there are no events at that time with a time reservation of busy but there exists events at that time with a time reservation of tentative, then the individual is assumed to be tentatively available at that time. If there are no events at that time with a time reservation of busy or tentative, then the individual is determined to be free at that time. The use of this method in the prior art calendaring and scheduling systems is inadequate when for expressing the availability of an individual for events within a hierarchy. For example, if the user creates a “business trip” event on their calendar with a time reservation of “Busy,” then the calendar does not show the individual as available for meetings during that business trip.
There is, therefore, a need in the art for managing and navigating the hierarchical relationship of events in such a way that it may he applied to existing calendar systems.